package net.telesing.tcmc.core;

import java.sql.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

/**
 * 时间工具类
 * 
 * Created by Zmt on 2015/11/6.
 */
public class TimeUtil
{
    /**
     * 获取未来日间（Date）
     *
     * @param day
     */
    public static Date getFutureDate(int day)
    {
        Calendar c = Calendar.getInstance();
        c.add(Calendar.DATE, day);
        return new Date(c.getTime().getTime());
    }

    /**
     * 获取未来时间（long）
     *
     * @param day
     * @return
     */
    public static long getFutureTime(int day)
    {
        return System.currentTimeMillis() + day * 24 * 60 * 60 * 1000;
    }

    /**
     * 判断当前时间是否在有效期内
     *
     * @param startTime
     * @param endTime
     * @return 有效期内：true；已过期：false
     */
    public static boolean checkDate(Date startTime, Date endTime)
    {
        Date currentTime = formatDate(System.currentTimeMillis());
        return (null != currentTime && 0 >= startTime.compareTo(currentTime) && 0 <= endTime.compareTo(currentTime));
    }

    /**
     * 时间格式转换（long --> yyyy-MM-dd HH:mm:ss）
     *
     * @param date
     * @return
     */
    public static Date formatDate(long date)
    {
        DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date dateTime = null;
        try
        {
            dateTime = new Date(formatter.parse(formatter.format(date)).getTime());
        }
        catch (ParseException e)
        {
            e.printStackTrace();
        }
        return dateTime;
    }

    /**
     * 转换时间类型（Date --> long）
     *
     * @param date
     * @return
     *
     * Added By Zmt
     */
    public static long transformTime(Date date)
    {
        return date.getTime();
    }

}
